import { Injectable } from '@nestjs/common';
import * as ExcelJS from 'exceljs';

@Injectable()
export class ExcelService {
  async readExcel(file: any) {
    const workbook = new ExcelJS.Workbook();
    await workbook.xlsx.load(file);
    return workbook;
  }

  async readWriteExcel(templatePath /** outputPath */) {
    // 创建一个新的工作簿实例
    const workbook = new ExcelJS.Workbook();
    // 从模板路径读取Excel文件
    await workbook.xlsx.readFile(templatePath);
    // 获取第一个工作表
    const worksheet = workbook.getWorksheet(1);
    // 插入数据到工作表中，例如在第二行插入数据
    worksheet.insertRow(2, ['TSGGEYWERRQ', '南通市江安镇']);

    // 也可以遍历数据来添加多行
    // data.forEach((rowData, index) => {
    //   worksheet.addRow(rowData);
    // });

    // 导出新的Excel文件到指定路径
    // await workbook.xlsx.writeFile(outputPath);

    // 导出工作簿为流
    const stream = workbook.xlsx.writeBuffer();

    // 返回工作簿流
    return stream;
  }
}
